翻訳と辞書
Words near each other
・ "O" Is for Outlaw
・ "O"-Jung.Ban.Hap.
・ "Ode-to-Napoleon" hexachord
・ "Oh Yeah!" Live
・ "Our Contemporary" regional art exhibition (Leningrad, 1975)
・ "P" Is for Peril
・ "Pimpernel" Smith
・ "Polish death camp" controversy
・ "Pro knigi" ("About books")
・ "Prosopa" Greek Television Awards
・ "Pussy Cats" Starring the Walkmen
・ "Q" Is for Quarry
・ "R" Is for Ricochet
・ "R" The King (2016 film)
・ "Rags" Ragland
・ ! (album)
・ ! (disambiguation)
・ !!
・ !!!
・ !!! (album)
・ !!Destroy-Oh-Boy!!
・ !Action Pact!
・ !Arriba! La Pachanga
・ !Hero
・ !Hero (album)
・ !Kung language
・ !Oka Tokat
・ !PAUS3
・ !T.O.O.H.!
・ !Women Art Revolution


Dictionary Lists
翻訳と辞書 辞書検索 [ 開発暫定版 ]
スポンサード リンク

Recursive path ordering : ウィキペディア英語版
Path ordering (term rewriting)

In theoretical computer science, in particular in term rewriting, a path ordering is a well-founded strict total order (>) on the set of all terms such that
:''f''(...) > ''g''(''s''1,...,''s''''n'')   if   ''f'' .> ''g''   and   ''f''(...) > ''s''''i'' for ''i''=1,...,''n'',
where (.>) is a user-given total precedence order on the set of all function symbols.
Intuitively, a term ''f''(...) is bigger than any term ''g''(...) built from terms ''s''''i'' smaller than ''f''(...) using a
lower-precedence root symbol ''g''.
In particular, by structural induction, a term ''f''(...) is bigger than any term containing only symbols smaller than ''f''.
A path ordering is often used as reduction ordering in term rewriting, in particular in the Knuth–Bendix completion algorithm.
As an example, a term rewriting system for "multiplying out" mathematical expressions could contain a rule ''x''
*(''y''+''z'') → (''x''
*''y'') + (''x''
*''z''). In order to prove termination, a reduction ordering (>) must be found with respect to which the term ''x''
*(''y''+''z'') is greater than the term (''x''
*''y'')+(''x''
*''z''). This is not trivial, since the former term contains both less function symbols and less variables than the latter. However, setting the precedence (
*) .> (+), a path ordering can be used, since both ''x''
*(''y''+''z'') > ''x''
*''y'' and ''x''
*(''y''+''z'') > ''x''
*''z'' is easy to achieve.
Given two terms ''s'' and ''t'', with a root symbol ''f'' and ''g'', respectively, to decide their relation their root symbols are compared first.
* If ''f'' <. ''g'', then ''s'' can dominate ''t'' only if one of ''ss subterms does.
* If ''f'' .> ''g'', then ''s'' dominates ''t'' if ''s'' dominates each of ''ts subterms.
* If ''f'' = ''g'', then the immediate subterms of ''s'' and ''t'' need to be compared recursively. Depending on the particular method, different variations of path orderings exist.〔 Here: sect.5.3, p.275〕〔 Here: chapter 4, p.55-64〕
The latter variations include:
* the multiset path ordering (mpo), originally called recursive path ordering (rpo)
* the lexicographic path ordering (lpo)
* a combination of mpo and lpo, called recursive path ordering by Dershowitz, Jouannaud (1990)〔Kamin, Levy (1980)〕
Dershowitz, Okada (1988) list more variants, and relate them to Ackermann's system of ordinals.
==Formal definitions==

The multiset path ordering (>) can be defined as follows:〔Huet (1986), sect.4.3, def.1, p.57〕
,
| or
|-
| ''f''
| =
| ''g''
| and
| colspan=5 | >>
|}
where
* (≥) denotes the reflexive closure of the mpo (>),
* denotes the multiset of ''s''’s subterms, similar for ''t'', and
* (>>) denotes the multiset extension of (>), defined by >> if can be obtained from
*
* by deleting at least one element, or
*
* by replacing an element by a multiset of strictly smaller (w.r.t. the mpo) elements.〔Huet (1986), sect.4.1.3, p.56〕
More generally, an order functional is a function ''O'' mapping an ordering to another one, and satisfying the following properties:〔Huet (1986), sect.4.3, p. 58〕
* If (>) is transitive, then so is ''O''(>).
* If (>) is irreflexive, then so is ''O''(>).
* If ''s'' > ''t'', then ''f''(...,''s'',...) ''O''(>) ''f''(...,''t'',...).
* ''O'' is continuous on relations, i.e. if ''R''0, ''R''1, ''R''2, ''R''3, ... is an infinite sequence of relations, then ''O''(∪ ''R''''i'') = ∪ ''O''(''R''''i'').
The multiset extension, mapping (>) above to (>>) above is one example of an order functional: (>>)=''O''(>).
Another order functional is the lexicographic extension, leading to the lexicographic path ordering.

抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)
ウィキペディアで「Path ordering (term rewriting)」の詳細全文を読む



スポンサード リンク
翻訳と辞書 : 翻訳のためのインターネットリソース

Copyright(C) kotoba.ne.jp 1997-2016. All Rights Reserved.